﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ModeloEntidades;

namespace AccesoDatos.DAO
{
    public class DAO_Loguin : DAO_Base_modelo_entidades
    {
        // Atributos de manejo de instancia (singleton)
        static DAO_Loguin instance = null;
        //------------------------------------------------------------------------------------------

        public Loguin obtener(string unaOficina)
        {          
        
            return acceso_ModeloEntidades.Loguines.Where(x => x.officina == unaOficina).FirstOrDefault();
        }

        public Administrador obtener(string unaOficina, string unUsuario, string unaContraseña)
        {
            // Obtengo un loguin
            var loguin = obtener(unaOficina);

            // Si hay loguin
            if (loguin != null)
            {
                var administradores = loguin.Administradores;            

                var administradorLgueado = administradores.Where(a => a.usuario == unUsuario & a.contraseña == unaContraseña).ToList();

                if (administradorLgueado.Count() > 0)
                {
                    return administradorLgueado.First();
                }
            }
            
            return null;
        }
            

        public static DAO_Loguin Instance
        {
            get
            {
                if (instance == null)
                {
                    lock (padlock)
                    {
                        if (instance == null)
                        {
                            instance = new DAO_Loguin();
                        }
                    }
                }
                return instance;
            }
        }
    }
}
